1. Field of the Present Invention
The present invention relates generally to the field of data processing networks and more particularly to a server cluster and method in which cached files on powered-down servers remain accessible to the active servers to conserve power consumption without substantially impacting response performance.
2. History of Related Art
In the field of network computing, network services are frequently provided using a server cluster in which multiple server services are connected together in a local area network configuration. Referring to FIG. 2, a conceptualized illustration of an example in which Web based services are provided by a server cluster 118 is presented. Server cluster 118 includes a set of servers 120–123 connected together in a local area network. Server cluster 118 may be configured such that a single universal resource indicator is serviced by any of the servers in the cluster. In other words, clients use a single network address when directing requests to the cluster, and any client request can be serviced by any of the servers in the cluster. In this illustration, a series of client requests, each indicated by a letter in reference numeral 119, are received by server cluster 118. Each letter in the series corresponds to the target file of the respective request. Each letter might, for example, identify a unique universal resource locator (URL). The series of requests 119 may include multiple requests for the same target file. The target file corresponding to letter “A,” for example, has been requested twice in the illustrated series.
The server cluster 118 includes a request distributor 126 that implements locality aware request distribution (LARD). In a LARD configuration, client requests are routed to respective servers based at least in part on the requested target file. Routing requests in this manner attempts to distribute loading over the servers and to maximize efficiency by sending requests to the server that most recently serviced a request for a specific target file. In the illustrated example, requests for target files A and E are routed to server 120, requests for target files B and F are routed to server 121, requests for target files C and G have been routed to server 122, and requests for target files D and H have been routed to server 123.
Each server is shown as including a disk cache or file cache 124. File cache 124 typically comprises a portion of the respective server's volatile system memory and includes files or other data objects recently retrieved from disk storage 125. Thus, the file cache 124 of server 120 is shown as including requested files A and E while file cache 124 of server 121 includes requested files B and F and so forth. Data stored in file caches 124, of course, is retrieved faster than data stored in disk storage 125.
While distributing requests across multiple servers in a server cluster may provide performance advantages, it may also increase operating costs. The power consumed by each active server in a server cluster has motivated cluster designs in which servers are dynamically powered-down in response to the varying loads of client requests. At times when request loading is low, fewer servers are required to handle the client requests with adequate response performance while, at peaks loads, all servers may be required to deliver acceptable performance.
The advantages offered by LARD may, unfortunately, be inconsistent with the advantages offered by dynamic power loading. More specifically, by dynamically powering down servers to account for reduced loading, a server cluster may negatively impact performance by powering down one or more servers that contain cached copies of recently requested target files. Referring to FIG. 3, an illustration of the performance penalty that occurs when a one or more servers is powered-down in a LARD configured server cluster is presented. In this illustration, servers 120 and 121 have been powered-down by the server cluster in an effort to conserve power during a time of reduced traffic. Prior to power-down, server 120 had been servicing requests for target files A and E (as in FIG. 2) and server 121 had been servicing requests for target files B and F. Accordingly, the file caches 124 of the remaining active servers 122 and 123 do not contain cached copies of target files A, E, B, and F. When a subsequent request for any of these target files is received, the server cluster must direct the request to one of the active servers. Because the file caches of the active servers do not include copies of target files A, B, E, and F, subsequent requests for these files have to be serviced from disk storage 125. It would be desirable to implement a server cluster that benefited from dynamic activation of servers and locality aware request distribution without suffering the disk access performance penalty described above.